home *** CD-ROM | disk | FTP | other *** search
- 100 OPTION BASE 1: DIM MONLEN(12)
- 101 STYEAR=1979
- 110 INPUT "enter julian date";DATE
- 120 GOSUB 1400
- 125 PRINT DAY, MONTH, YEAR
- 130 GOTO 110
- 1400 '
- 1410 REM PROGRAM PDATE - TO CONVERT CONSECUTIVE JULIAN DATES TO
- 1420 ' MM/DD/YYYR
- 1430 ' by Deane Wang - Cybersoft Group
- 1440 '
- 1450 ' NEEDS IN MAIN:
- 1460 ' OPTION BASE 1
- 1470 ' DIM MONLEN(12)
- 1480 ' transfer argument as DATE
- 1490 ' set STYEAR as first of of Julian counting
- 1500 '
- 1510 ' INITIALIZE
- 1520 '
- 1530 MONLEN(1)=31: MONLEN(2)=28: MONLEN(3)=31: MONLEN(4)=30
- 1540 MONLEN(5)=31: MONLEN(6)=30: MONLEN(7)=31: MONLEN(8)=31
- 1550 MONLEN(9)=30: MONLEN(10)=31: MONLEN(11)=30: MONLEN(12)=31
- 1560 FOR I=1 TO 4: LENYR(I)=365: NEXT I
- 1570 '
- 1580 ' CONVERT TO 1 TO 366 UNITS
- 1590 '
- 1600 NFRYR=INT(DATE/1461!) 'how many 4 year cycles
- 1610 FOR NCT=1 TO 4
- 1620 IF ABS(((STYEAR+NCT-1)/4!)-INT((STYEAR+NCT-1)/4)) < .001 THEN GOTO 1640
- 1630 NEXT NCT
- 1640 JFDATE=DATE-(NFRYR*1461)
- 1650 LENYR(NCT)=366
- 1660 FOR I=1 TO 4
- 1670 IF (JFDATE-LENYR(I)) <= 0 THEN GOTO 1700
- 1680 JFDATE=JFDATE-LENYR(I)
- 1690 NEXT I
- 1700 JDATE=JFDATE
- 1710 I=I-1
- 1720 '
- 1730 ' CALCULATE MONTH, DAY, YEAR
- 1740 '
- 1760 YEAR=STYEAR+NFRYR*4+I
- 1770 IF ABS((YEAR/4)-INT(YEAR/4)) <.001 THEN MONLEN(2)=29 'leap year???
- 1780 FOR M=1 TO 12
- 1790 IF JDATE-MONLEN(M)-1 < 0 THEN GOTO 1820
- 1800 JDATE=JDATE-MONLEN(M)
- 1810 NEXT M
- 1820 MONTH=M
- 1830 MONLEN(2)=28
- 1835 DAY=JDATE
- 1840 RETURN
- < 0 THEN GOTO 18